package org.bt.common.enums;

/**
 * 枚举 ResponseStatus
 *
 * @author zwj
 */
public enum ResponseStatus {

    /**
     * [*] 服务器成功返回用户请求的数据
     */
    OK("200", "OK"),
    /**
     * [*]：用户发出的请求出现业务异常, 错误信息显示在页面上
     */
    INVALID_REQUEST("400", "INVALID REQUEST"),
    /**
     * [*]：表示用户没有权限（令牌、用户名、密码错误, 需要重新登录)
     */
    UNAUTHORIZED("401", "UNAUTHORIZED"),

    /**
     * [*]：流量限制
     */
    TOO_MANY_REQUESTS("429", "TOO_MANY_REQUESTS"),
    /**
     * [*]：系统异常, 需要跳转到系统异常错误页面(比如: 该页面可显示"系统未知异常, 请联系管理员"等信息)
     * 异常详细信息,需要前台注释起来或者将错误信息输出到控制台console.error(...)
     */
    INTERNAL_SERVER_ERROR("500", "INTERNAL SERVER ERROR"),

    /**
     * [*]：网关异常
     */
    BAD_GATEWAY("502", "BAD_GATEWAY");

    private final String value;
    private final String reasonPhrase;

    ResponseStatus(String value, String reasonPhrase) {
        this.value = value;
        this.reasonPhrase = reasonPhrase;
    }

    public String value() {
        return this.value;
    }

    public String getReasonPhrase() {
        return this.reasonPhrase;
    }

}
